This written description is in the field of access to physical memory in a server. More particularly, the description relates to virtual memory allocation for an application running on the server.
Many different types of computing systems have attained widespread use around the world. These computing systems include personal computers, servers, mainframes and a wide variety of stand-alone and embedded computing devices. Sprawling client-server systems exist, with applications and information spread across, many PC networks, mainframes and minicomputers. In a distributed system connected by networks, a user may access many application programs, databases, network systems, operating systems and mainframe applications. Computers provide individuals and businesses with a host of software applications including word processing, spreadsheet, and accounting. Further, networks enable high speed communication between people in diverse locations by way of e-mail, websites, instant messaging, and web-conferencing.
A common architecture for high performance, single-chip microprocessors is the reduced instruction set, computer (RISC) architecture characterized by a small simplified set of frequently used instructions for rapid execution. Thus, in a RISC architecture, a complex instruction comprises a small set of simple instructions that are executed in steps very rapidly. These steps are performed in execution units adapted to execute specific simple instructions. In a superscalar architecture, these execution units typically comprise load/store units, integer Arithmetic/Logic Units, floating point. Arithmetic/Logic Units, and Graphical Logic Units that operate in parallel. In a processor architecture, an operating system controls operation of the processor and components peripheral to the processor. Executable application programs are stored in a computer's hard drive. The computer's processor causes application programs to run in response to user inputs.
Thus, in a modern system, a plurality of computers—including servers—are connected together through a network. Each computer may run application programs for performing certain functions. These application programs may include word-processing, e-mail, graphics, document viewing and mark-up, spreadsheet, database, music player, internet browser, photo-shop, games, anti-virus, as well as a host of other application programs too numerous to mention.
Servers are provided to connect a plurality of computers to the Internet or an intranet. Each server may be logically partitioned into a plurality of virtual clients which act and appear to a computer connected to the server as, if the virtual client is itself a server. Each virtual client has access to memory external to the server such as in a Storage Area Network (SAN). To provide this access a Power Hypervisor (PHYP) controls access of each virtual client to the physical storage through a Virtual Input/Output Server (VIOS), which is itself a logical partition.
Virtual Real Memory (VRM) allows the Operating System (OS) to treat memory on the server as virtual memory. Systems can be enabled to use VRM and the firmware manages read and write transactions to the system's virtual memory and sends those, requests to a block storage device. Virtual Real Memory uses a specialized Virtual I/O Server (VIOS) called a Paging Space Partition (PSP) to provide read and write services between firmware and a block storage device.
Disks and optical devices attached to a physical adapter connected to the Virtual I/O Server logical partition can be shared by one or more client logical partitions. The Virtual I/O Server may be a standard storage subsystem that provides standard Small Computer Service Interface (SCSI)-compliant Logical Unit Numbers (LUN). The Virtual I/O Server is capable of exporting a pool of heterogeneous, physical storage as a homogeneous pool of block storage in the form of SCSI disks.
On high end servers many customers are moving toward having all of their storage located on the Storage Area Network (SAN). The SAN may include storage devices connected by way of Fibre Channel or SCSI (Small Computer System Interface). These types of devices may have a high latency dependent on the fabric or network they are on. In a conventional configuration, the root volume group (rootvg) is on the SAN device and therefore the paging space has a higher latency. Critical applications may need more memory or paging devices with less latency. Moreover, applications are typically restricted to a single logical partition (LPAR). If the logical partition gets overloaded and decreases performance, other applications running on the server will also see degradation of performance.